package a26_Collection.TreeSet;

/**
 * @Author quan
 * @Description TODO
 * @Date 2023/2/20 19:02
 */
//Comparable是泛型，现在比较对象已经确定是Student，因此Comparable后面写Student
public class Student1 implements Comparable<Student1> {
    private String name;
    private int age;

    public Student1() {
    }

    public Student1(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
    //不用重写HashCode和equals方法：因为TreeSet底层是按照红黑树的结构而不是哈希表的结构存储数据的
    //重写Comparable方法，在里面指定排序的比较规则
    @Override
    public int compareTo(Student1 o) {
        //按照年龄按照升序
        int res = this.getAge()-o.getAge();
        //this是当前要添加的元素
        //o是红黑树中已经存在的元素
        //返回值：负数：认为要添加的元素是小的，存在左边
               //正数：认为要添加的元素是大的，存右边
               //0：  认为要添加的元素已经存在，不存
        return res;
    }
}
